(1) Field of the Invention
This invention relates to a computer implemented data management method, a computer system and an interactive computer program for creating, storing and relating a hierarchical database. The present invention may be realized, in a preferred embodiment, as a real property listing management system. In another preferred embodiment, the invention is realized as a data management system provided by an application service provider (ASP) over a network such as the Internet or another communications channel for use with a local or distributed computer system and, more particularly, to a hierarchical database adapted for entry and storage of retrievable and reusable information related to real estate listings.
(2) Description of Related Art—Background Information
Databases
The need to represent real-world systems in computer usable form has led to the existence of databases for storing, retrieving and manipulating data. Applications programs may include internal logic to handle such tasks, but a more useful approach is to provide a set of computer programs that facilitates the creation, management, and manipulation of databases. Such a set of computer programs for managing one or more databases is a database management system. Using a database management system, an applications programmer may write an applications program without detailed, intimate knowledge of how or where the data is stored or retrieved. Thus, database management systems provide a measure of independence between the data of a database and the applications programs. This advantage may be referred to as data independence.
Data independence is desirable. Without data independence, a change in the structure of underlying data necessitates a corresponding change in the applications programs that rely on such a structure. The data independence provided by database management systems serves to avoid applications program modification.
In an environment having a database management system, applications programs communicate with an automated database manager. The database manager may be referred to as a database server. In particular, the applications programs may send messages to the database server in a predefined format. Such formatted messages may be referred to as database calls. A database call invokes one or more corresponding functions of the database management system, usually with respect to a particular database. A database management system provides applications programs with a variety of callable functions.
Every database management system is based on a general database model. A database management system based on the relational model may be referred to as a Relational Database Management System (RDBMS). An RDBMS is a system of computer programs that facilitates the creation, management, and manipulation of relational databases.
Relational Database Management Systems
Every relational database is based on the relational model. The relational model is familiar to one of skill in the art. According to the relational model, data is perceived to exist as a collection of relational tables. An example of an RDBMS is DB2, which commercially is available through International Business Machines Corporation.
A relational table expresses a relation between things. Relational tables are characterized by rows and columns. Although the rows and columns of relational tables may be employed in many ways, the relational model provides that vertical columns pertain to entities or attributes of entities and that horizontal rows, pertain to specific instances of entities or specific instances of attributes of an entity. A column may therefore be thought of a representing a field, and a row may be thought of as representing a record. The rows and columns of a relational tables intersect to define data cells.
The function calls that an applications program may make to the database server have a somewhat standardized structure that is tailored to the relational model. This structure for RDBMS function calls is generally referred to as the Structured Query Language (SQL).
Tables in a relational database are related to each other by key fields that must be duplicated between tables. In this way, a single piece of data can have another entire table of data associated with it. For example, a hotel entry may have another table related to it that contains data on rooms available at that hotel. The database would link the two tables by having one field in common between them. This often takes the form of an ID number that would occur in each table. This ID number would be known as the key or primary key depending on whether duplicates are allowed. No duplicates are allowed in a primary key thus eliminating the possibility of a many-to-many relationship. A record in one table (commonly known as the parent table) with a key or primary key field that contained the numeral “24” would be represented in another table (commonly known as the child table) by one or several records all of which contained the key or primary key “24.” Parent-to-child table relationships can be one-to-one, one-to-many, or many-to-many.
These relational tables allow hierarchical data to be stored by creating a table for each level of the hierarchy and separate groups of tables for each branch of the hierarchy. Complex sets of data with multiple relationships and many levels of hierarchy can require hundreds or thousands of tables to store all of the data. As the number of tables grows, disk storage space is quickly consumed and data retrieval speeds slow. The computer system, which may use various programming languages to search the database, will be required to follow all of these keys or primary keys between tables in order to find the relationships it is searching.
No matter the length of the table, it is always faster to search within only one table rather than between several because searching within several tables requires the computer system to open and manage multiple files. This results in both RAM and ROM consumption.
Furthermore, a set of tables in a relational database is inflexible. While records can easily be manipulated through add, replace, update or delete operations, the database structure itself is hard to modify. To capture new types of information in the database, it is necessary to modify the database to include a new table or to modify a table already in the database to include a new column. The applications programs that interact with the database also need to be modified to take into account the newly introduced type of information.
The independence between applications programs and the data in a relational database management system is thus less than complete independence. The applications programs and the database structure still need to be modified whenever new kinds of data are introduced. The relational approach is thus too brittle to keep up with situations in which data fields are likely to be added, or in which the requirement to store new and unexpected kinds of data frequently occur.
The standard formatting of a relational database, in which tables are separated and related through key fields, uses a much larger amount of space on the computer and requires much more time to manage the data. Searching for a single data item over multiple tables is much slower than searching for the same item in a single table.
The Real Estate Industry
The real estate industry utilizes property listing information. Accuracy of information contained in a property listing is essential to the ability of a real estate professional to market a property, make the sale and manage the sales transaction. The process of handwriting and then manually transferring or recording the data is inefficient and time-consuming and often leads to missing, insufficient and inaccurate property information.
Currently, a realtor records new property listing information at the property site using pre-printed paper forms and a pencil. Once this manual process is completed, the realtor must return to the office and reenter all the information into a Multi List Service (MLS) database. By “Multi List Service”, what is meant is an organization that compiles, publishes and distributes information to subscribing realtors and real estate agencies. An example of such prior art data-gathering form is illustrated in FIG. 1A and FIG. 1B. Systems such as the MLS, which realtors currently use to record property data, avoid this problem presented by the standard formatting of a relational database by limiting the amount of data they store and the searchability of the database. However, the MLS also does not offer the realtor the flexibility to record unusual or unique attributes of a property because the number of available fields per property is very limited. It can be readily observed by referring to the prior art data sheets set forth in FIGS. 1A and 1B, that an exhaustive list of possible attributes may be associated with a particular property listing. A realtor, for example, would have no place except in a text comments field in the MLS to record whether a property had an RV storage building. Moreover, the many related attributes of the MLS listing are difficult if not impossible to present in an orderly, cohesive and, more importantly, searchable format. The example sheet shown is part of a form copyrighted by the Metropolitan Regional Information Systems, Inc. and is offered for illustration purposes only.
The method of the prior art increases time and cost associated with listing a property. There is no methodical way of automatically verifying to ensure that required legal information (such as, for example, tax parcel, recorder's office information, owners name or financing options) is included. Existing methods also increase the possibility of transcription oversight and erroneous data entries and other human error factors. These error sources present a host of problems when marketing a property, trying to make the sale, and finally managing the sale transaction.